#负责所有和配置有关的信息
class config:
    #配置数据库和SQLAlchemy
    # 配置数据库和SQLAlchemy
    HOSTNAME = '127.0.0.1'
    PORT = 3306
    DATABASE = 'mytest'
    USERNAME = 'root'
    PASSWORD = '111'

    DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME,
                                                                                            password=PASSWORD,
                                                                                            host=HOSTNAME, port=PORT,
                                                                                            db=DATABASE)
    SQLALCHEMY_DATABASE_URI = DB_URI
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 不需要跟踪数据的修改

    # 配置日志信息
    LOGGING_LEVEL = 'DEBUG'
    LOGING_FILE_DIR = 'logs/'
    LOGGING_FILE_MAX_BYTES= 300 * 1024 * 1024
    LOGING_FILE_BACKUP = 10

    # 限流器采用采用Redis保存数据，默认是内存，需要安装flask-redis
    RATELIMIT_STORAGE_URL = 'redis://127.0.0.1:6379/0'
    # 限制策略：移动窗口：时间窗口会自动变化
    RATELIMIT_STRATEGY = 'moving-window'
    #redis数据库的链接地址，使用数据库一来存放缓存数据包括短信验证码
    REDIS_URL='redis://127.0.0.1:6379/1'


#开发环境下的配置信息
class Delvelopmentconfig(config):
    DEBUG=True
    SQLALCHEMY_ECHO=True  #打印sql语句



#生产环境中的配置信息
class ProductConfig(config):
    pass
#把两个不同环境的配置和字符串映射起来
map_config={
    'develop': Delvelopmentconfig,
    'product':ProductConfig
}
# #配置日志信息
# LOGGING_LEVEL ='DEBUG'
# LOGING_FILE_DIR='logs/'
# LOGGING_FILE_MAX_BYTES=300*1024*1024
# LOGING_FILE_BACKUP= 10
